home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / lang / sofa.lha / sofa / smalleiffel / lib_show / number / example3.e < prev   
Text File  |  2000-03-25  |  2KB  |  67 lines

  1. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  2. -- software  is  distributed  in the hope that it will be useful, but WITHOUT
  3. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  4. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  5. -- this header is kept unaltered, and a notification of the changes is added.
  6. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of
  7. -- another product.
  8. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  9. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr
  10. --                       http://SmallEiffel.loria.fr
  11. --
  12. class EXAMPLE3
  13.    --
  14.    -- To start with NUMBERs, just compile an run it :
  15.    -- 
  16.    --            compile -o example2 -boost example2
  17.    --
  18.  
  19. inherit NUMBER_TOOLS;
  20.  
  21. creation make
  22.  
  23. feature
  24.  
  25.    make is
  26.       local
  27.          n: NUMBER;
  28.      s: STRING;
  29.       do
  30.      if argument_count = 0 then
  31.         io.put_string("factorial of 10 :%N");
  32.         n := from_integer(10);
  33.      else
  34.         s := argument(1);
  35.         if is_number(s) then
  36.            n := from_string(s);
  37.            if not n.is_abstract_integer then
  38.           io.put_number(n);
  39.           io.put_string(" : this is not an integer !%N");
  40.           die_with_code(exit_failure_code);
  41.            end;
  42.            if n @< 0 then
  43.           io.put_number(n);
  44.           io.put_string(" : this is not a positive integer !%N");
  45.           die_with_code(exit_failure_code);
  46.            end;
  47.         else
  48.            io.put_string(s);
  49.            io.put_string(" : this is not a number !%N");
  50.            die_with_code(exit_failure_code);
  51.         end;
  52.      end;
  53.      compute_factorial(n);
  54.       end;
  55.  
  56.    compute_factorial(n: NUMBER) is
  57.       do
  58.      io.put_character('(');
  59.      io.put_number(n);
  60.      io.put_string(").factorial = ");
  61.      io.put_number(n.factorial);
  62.      io.put_character('%N');
  63.       end;
  64.  
  65. end -- EXAMPLE3
  66.  
  67.